home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d12 / v7n10.arc / TRYTD.ASM < prev   
Assembly Source File  |  1988-04-30  |  4KB  |  134 lines

  1.         name    trytd
  2.         title   TRYTD --- time & date demo
  3.         page    55,132
  4.  
  5. ;
  6. ; TRYTD.ASM -- demonstrate use of time and date routines
  7. ;
  8. ; Ray Duncan, December 1987
  9. ;
  10.  
  11. cr      equ     0dh             ; ASCII carriage return
  12. lf      equ     0ah             ; ASCII line feed
  13.  
  14. stdin   equ     0               ; standard input handle
  15. stdout  equ     1               ; standard output handle
  16. stderr  equ     2               ; standard error handle
  17.  
  18.  
  19. DGROUP  group   _DATA
  20.  
  21.  
  22. _TEXT   segment word public 'CODE'
  23.  
  24.         assume  cs:_TEXT,ds:_DATA
  25.  
  26.         extrn   systcvt:near    ; format system time
  27.         extrn   sysdcvt:near    ; format system date
  28.         extrn   dirtcvt:near    ; format directory time
  29.         extrn   dirdcvt:near    ; format directory date
  30.  
  31. main    proc    near
  32.                                 
  33.         mov     ax,_DATA        ; make our data segment
  34.         mov     ds,ax           ; addressable...
  35.         mov     es,ax
  36.         
  37.                                 ; format system time...
  38.         mov     si,offset msg1a ; buffer address
  39.         mov     bx,11           ; buffer length (max 11)
  40.         call    systcvt
  41.  
  42.                                 ; format system date
  43.         mov     si,offset msg1b ; buffer address
  44.         mov     bx,8            ; buffer length (max 8)
  45.         call    sysdcvt
  46.  
  47.         mov     dx,offset fname ; open TRYTD.EXE file
  48.         mov     ax,3d00h        ; Function 3DH = open,
  49.                                 ; mode = read-only
  50.         int     21h             ; transfer to MS-DOS
  51.         jc      main1           ; jump if open failed
  52.  
  53.         mov     fhandle,ax      ; save handle
  54.         mov     bx,ax           ; now get file date
  55.         mov     ax,5700h        ; and time...
  56.         int     21h             ; transfer to MS-DOS
  57.  
  58.         mov     ax,cx           ; format file time
  59.         mov     bx,11           ; buffer length
  60.         mov     si,offset msg1c ; buffer address
  61.         call    dirtcvt
  62.  
  63.         mov     ax,dx           ; format file date
  64.         mov     bx,8            ; buffer length
  65.         mov     si,offset msg1d ; buffer address
  66.         call    dirdcvt
  67.  
  68.         mov     bx,fhandle      ; now release handle
  69.         mov     ax,3e00h        ; Function 3EH = close
  70.         int     21h             ; transfer to MS-DOS
  71.  
  72.                                 ; display formatted
  73.                                 ; date and time...
  74.         mov     dx,offset msg1  ; message address
  75.         mov     cx,msg1_len     ; message length
  76.         mov     bx,stdout       ; standard output handle
  77.         mov     ah,40h          ; Function 40h = write
  78.         int     21h             ; transfer to MS-DOS
  79.  
  80.         mov     ax,4c00h        ; terminate with
  81.         int     21h             ; return code = zero
  82.  
  83. main1:  mov     dx,offset msg2  ; display message
  84.         mov     cx,msg2_len     ; "Can't open TRYTD.EXE"
  85.         mov     bx,stdout
  86.         mov     ah,40h
  87.         int     21h
  88.  
  89.         mov     ax,4c01h        ; terminate with
  90.         int     21h             ; return code = 1 (error)
  91.  
  92.  
  93. main    endp
  94.         
  95.  
  96. _TEXT   ends
  97.  
  98.  
  99. _DATA   segment word public 'DATA'
  100.  
  101. msg1    db      cr,lf                           
  102.         db      'The current time and date are: '
  103. msg1a   db      12 dup (' ')    ; time formatted here
  104. msg1b   db      8 dup  (' ')    ; date formatted here
  105.         db      cr,lf,lf
  106.         db      'The TRYTD.EXE file time and date are: '
  107. msg1c   db      12 dup (' ')    ; time formatted here
  108. msg1d   db      8 dup  (' ')    ; date formatted here
  109.         db      cr,lf
  110.  
  111. msg1_len equ $-msg1
  112.  
  113. msg2    db      cr,lf
  114.         db      'Can''t open TRYTD.EXE'
  115.         db      cr,lf
  116.  
  117. msg2_len equ $-msg2
  118.  
  119. fname   db      'TRYTD.EXE',0   ; name of this file
  120. fhandle dw      0               ; handle for this file
  121.  
  122. _DATA   ends
  123.  
  124.  
  125. STACK   segment para stack 'STACK'
  126.         
  127.         db      128 dup (?)
  128.  
  129. STACK   ends
  130.  
  131.  
  132.         end     main
  133.  
  134.